package utils

import (
	"gopkg.in/gomail.v2"
	"strconv"
)

//func SendMail() {
//	// 163 邮箱：
//	// SMTP 服务器地址：smtp.163.com（端口：465）
//	host := "smtp.163.com"
//	port := 465
//	userName := "cow11023@163.com"
//	password := "ZSNJUDIHSYRNDYXJ"
//	m := gomail.NewMessage()
//	m.SetHeader("From", userName) // 发件人
//	// m.SetHeader("From", "alias"+"<"+userName+">") // 增加发件人别名
//
//	m.SetHeader("To", "cow11023@163.com") // 收件人，可以多个收件人，但必须使用相同的 SMTP 连接
//	m.SetHeader("Subject", "Hello!")      // 邮件主题
//
//	// text/html 的意思是将文件的 content-type 设置为 text/html 的形式，浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。
//	// 可以通过 text/html 处理文本格式进行特殊处理，如换行、缩进、加粗等等
//	m.SetBody("text/html", "测试一下！！！")
//
//	// text/plain的意思是将文件设置为纯文本的形式，浏览器在获取到这种文件时并不会对其进行处理
//	// m.SetBody("text/plain", "纯文本")
//	// m.Attach("test.sh")   // 附件文件，可以是文件，照片，视频等等
//	// m.Attach("lolcatVideo.mp4") // 视频
//	// m.Attach("lolcat.jpg") // 照片
//
//	d := gomail.NewDialer(
//		host,
//		port,
//		userName,
//		password,
//	)
//	// 关闭SSL协议认证
//	d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
//
//	if err := d.DialAndSend(m); err != nil {
//		panic(err)
//	}
//}
func SendMail(mailTo string, subject string, body string) error {
	//定义邮箱服务器连接信息，如果是网易邮箱 pass填密码，qq邮箱填授权码

	//mailConn := map[string]string{
	//  "user": "xxx@163.com",
	//  "pass": "your password",
	//  "host": "smtp.163.com",
	//  "port": "465",
	//}

	mailConn := map[string]string{
		"user": "cow11023@163.com",
		"pass": "ZSNJUDIHSYRNDYXJ",
		"host": "smtp.163.com",
		"port": "465",
	}

	port, _ := strconv.Atoi(mailConn["port"]) //转换端口类型为int

	m := gomail.NewMessage()

	m.SetHeader("From", m.FormatAddress(mailConn["user"], "水牛之家官方")) //这种方式可以添加别名，即“XX官方” 	//说明：如果是用网易邮箱账号发送，以下方法别名可以是中文，如果是qq企业邮箱，以下方法用中文别名，会报错，需要用上面此方法转码
	//m.SetHeader("From", "FB Sample"+"<"+mailConn["user"]+">") //这种方式可以添加别名，即“FB Sample”， 也可以直接用<code>m.SetHeader("From",mailConn["user"])</code> 读者可以自行实验下效果
	//m.SetHeader("From", mailConn["user"])
	m.SetHeader("To", mailTo)       //发送给用户
	m.SetHeader("Subject", subject) //设置邮件主题
	m.SetBody("text/html", body)    //设置邮件正文

	d := gomail.NewDialer(mailConn["host"], port, mailConn["user"], mailConn["pass"])

	err := d.DialAndSend(m)
	return err
}
